<?php

/** 
 * @author felipe
 * 
 * 
 */
class App_Model_Db_TipoProduto extends Voitech_Db{
	protected $_name = 'tipo_produto';
	protected $_primary = 'co_tipo_produto';
	
	static private $instancia;

	/**
	 * @return App_Model_Db_TipoProduto
	 */
	static public function build() {
		if( !isset( self::$instancia ) ) {
			$classe = __CLASS__;
			self::$instancia = new $classe();
		}
		return self::$instancia;
	}
        
        public function buscarId($co_tipo_produto) {            
            $obSelect = $this->select()->where('tipo_produto.co_tipo_produto =?',$co_tipo_produto);
            return $this->getAdapter()->fetchRow($obSelect);
        }
        
        /**
         *
         * @param Voitech_TO $obTO
         * @return  array
         */
        public function listarTodos(Voitech_TO $obTO){
            $obSelect = $this->getAdapter()->select()
                                           ->from(array('tipo_produto'=>'tipo_produto'),
            				 					array('*',
                          				 			  'excluir' => '(CASE 
														    WHEN (SELECT count(*) FROM produto WHERE produto.co_tipo_produto = tipo_produto.co_tipo_produto)> 0 THEN
														    	\'N\'
														    ELSE
														    	\'S\'
														  END)'));
                                           
            if( !empty( $obTO->co_tipo_produto ) ){
                $obSelect->where('tipo_produto.co_tipo_produto =?',$obTO->co_tipo_produto);
            }
            if( !empty( $obTO->st_ativo ) ){
                $obSelect->where('tipo_produto.st_ativo =?',$obTO->st_ativo);
            }
            $obSelect->order(array('tipo_produto.no_tipo_produto'));
            return $this->getAdapter()->fetchAll($obSelect);                              
        }
}